MESCIUS CalendarGrid for Windows Forms 4.0J > CalendarGridの使い方 > InputManCell > GcComboBox型セル > オートコンプリートとオートフィルタ(CalendarGcComboBoxCellType) |
オートコンプリート機能を利用すると入力文字列を自動的に補完することが可能です。URL、住所、ファイル名、コマンドなどを頻繁に入力する場合に特に有効です。また、テキストボックスに入力する値によって、リストボックスに登録されている項目をフィルタリングするオートフィルタ機能も提供されています。
AutoCompleteSource、AutoCompleteMode、AutoCompleteCustomSourceの各プロパティを利用して、オートコンプリート機能を利用することが可能です。オートコンプリート機能は入力された文字を管理されたソース内のすべての文字列を検索して入力文字列を自動的に補完します。
注意 検索モードの設定でAutoCompleteMatchingModeプロパティとAutoCompleteModeプロパティの組み合わせがサポートされない組み合わせの場合、InputManCellでは例外が発生します。 |
AutoCompleteクラスを利用すると、オートコンプリート機能で表示されるリストのスタイルを設定することが可能です。
(図) 候補リスト内のフォントと検索文字列のハイライトを設定したGcComboBoxCell
AutoCompleteクラスには、オートコンプリート機能で利用する検索モードを設定するMatchingModeプロパティがあり、6種類の検索方法から選択することが可能です。
MatchingModeの値 | 説明 |
---|---|
MatchStartWith |
前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。 |
MatchAll |
部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。 |
AmbiguousMatchStartWith |
前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します。 |
AmbiguousMatchAll |
部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します。 |
ExactMatchStartWith |
前方一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。 |
ExactMatchAll |
部分一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。 |
注意
|
それぞれの検索モードを実行した場合の結果例は下記のようになります。
候補リスト | MatchStartWith | MatchAll |
---|---|---|
前方一致 |
部分一致 | |
AmbiguousMatchStartWith | AmbiguousMatchAll | |
前方一致 |
部分一致 | |
ExactMatchStartWith | ExactMatchAll | |
前方一致 |
部分一致 | |
注意 候補リスト内に同じ候補が存在した場合には、あとの候補が検索対象になります。 |
テキストボックスに入力する値によって、リストボックスに登録されている項目をフィルタリングすることができます。AutoFilterクラスのEnabledプロパティをTrueに設定すると、GcComboBoxCellのオートフィルタ機能を使用できます。
MinimumPrefixLengthプロパティで設定された値の文字数が入力されたときにフィルタリングを開始します。また、一度のフィルタリングで取得可能な最大項目数は、MaxFilteredItemsプロパティで設定できます。さらに、Intervalプロパティでフィルタリング動作を開始するまでの時間(ミリ秒)を指定することができます。
注意 オートフィルタ機能は、GcComboBoxCellのDropDownStyleプロパティがDropDownListに設定されている場合は無効になります。 |
AutoFilterクラスには、オートフィルタ機能で利用する検索モードを6種類の検索方法から設定するMatchingModeプロパティがあり、この検索モードはオートコンプリート機能と共通です。検索モードによる検索対象の実行例については、下記オートコンプリート機能の中の「検索モードの実行例」を参照してください。
MatchingModeの値 | 説明 |
---|---|
MatchStartWith |
前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。 |
MatchAll |
部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。 |
AmbiguousMatchStartWith |
前方一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します。 |
AmbiguousMatchAll |
部分一致 大文字/小文字の区別なし 全角/半角/ひらがな/カタカナ/カタカナの区別なし で検索します。 |
ExactMatchStartWith |
前方一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。 |
ExactMatchAll |
部分一致 大文字/小文字の区別あり 全角/半角/ひらがな/カタカナ/カタカナの区別あり で検索します。 |
また、AutoFilterでは検索対象のカラムを設定できます。MatchingSourceプロパティをAllSubItemsに設定すると、リスト内の全てのカラムを対象に検索を行い、ControlTextを設定するとTextSubItemIndexプロパティに設定したTextプロパティ設定に使用されるカラム、もしくはTextFormatプロパティに設定した書式を対象に検索を行います。
次のサンプルコードは、GcComboBoxCellのフィルタリング動作の設定例です。
Imports GrapeCity.Win.CalendarGrid Imports InputManCell = GrapeCity.Win.CalendarGrid.InputMan Dim today As DateTime = DateTime.Today Dim gcComboBoxCellType = New InputManCell.CalendarGcComboBoxCellType() gcComboBoxCellType.DropDownStyle = CalendarGridComboBoxStyle.DropDown gcComboBoxCellType.AutoFilter.Enabled = True gcComboBoxCellType.AutoFilter.Interval = 500 gcComboBoxCellType.AutoFilter.MaxFilteredItems = 8 gcComboBoxCellType.AutoFilter.MinimumPrefixLength = 1 gcComboBoxCellType.AutoFilter.MatchingMode = InputMan.AutoCompleteMatchingMode.MatchStartWith gcComboBoxCellType.AutoFilter.MatchingSource = InputMan.FilterMatchingSource.AllSubItems GcCalendarGrid1.Content(today).Rows(1).Cells(0).CellType = gcComboBoxCellType
using GrapeCity.Win.CalendarGrid; using InputManCell = GrapeCity.Win.CalendarGrid.InputMan; var today = DateTime.Today; var gcComboBoxCellType = new InputManCell.CalendarGcComboBoxCellType(); gcComboBoxCellType.DropDownStyle = CalendarGridComboBoxStyle.DropDown; gcComboBoxCellType.AutoFilter.Enabled = true; gcComboBoxCellType.AutoFilter.Interval = 500; gcComboBoxCellType.AutoFilter.MaxFilteredItems = 8; gcComboBoxCellType.AutoFilter.MinimumPrefixLength = 1; gcComboBoxCellType.AutoFilter.MatchingMode = InputManCell.AutoCompleteMatchingMode.MatchStartWith; gcComboBoxCellType.AutoFilter.MatchingSource = InputManCell.FilterMatchingSource.AllSubItems; gcCalendarGrid1.Content[today].Rows[1].Cells[0].CellType = gcComboBoxCellType;